perm filename MUDBG.LSP[SCH,LSP] blob sn#688837 filedate 1982-11-14 generic text, type T, neo UTF8
;;; -*-LISP-*-


(eval-when (compile) (load "ps:<scheme.development>umacro"))
(eval-when (compile) (load "<scheme.development>smacro"))
(eval-when (compile)			;Used in DEFCONT-WITH-FORCED-VAL 
  (DEFUN CONCAT N
    (LET ((L (LISTIFY N)))
      (COND ((< (LENGTH L) 2)
	     (CAR L))
	    (T
	     (IMPLODE (MAPCAN 'EXPLODEC L)))))))

(DEFVAR *SAVED-PC* NIL)
(DEFVAR *BROKEN-PC-NAME* NIL)

(DEFCONT MICROCODE-BREAK ()
  (PRINT (SUBR (MAKNUM *SAVED-PC*)))
  (PRINC "Broken!")
  (*THROW 'DONE (FETCH VAL)))

(DEFMACRO BREAK-AT (PC)
  `(COND ((OR *SAVED-PC* *BROKEN-PC-NAME*)
	  (PRINT (SUBR (MAKNUM *SAVED-PC*)))
	  (PRINC "PC not restored"))
	 (T
	  (SETQ *SAVED-PC* ,PC)
	  (SETQ *BROKEN-PC-NAME* ',PC)
	  (SETQ ,PC MICROCODE-BREAK))))

(DEFUN UNBREAK ()
  (SET *BROKEN-PC-NAME* *SAVED-PC*)
  (SETQ *SAVED-PC* NIL)
  (SETQ *BROKEN-PC-NAME* NIL))

(DEFUN PROCEED ()
  (SUBRCALL NIL *SAVED-PC*)
  (SPIN-THE-WHEELS))